package com.yanqu.road.entity.activity.pasture;

import com.yanqu.road.entity.activity.ActivityInfo;
import com.yanqu.road.entity.activity.entername.ChannelFightMatchRule;
import com.yanqu.road.entity.activity.entername.ChannelFightZone;
import com.yanqu.road.entity.activity.pasture.config.*;
import com.yanqu.road.utils.string.StringUtils;

import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

/**
 * 牧场点兵配置
 */
public class PastureConfig {

    private ActivityInfo activityInfo;

    /**
     * 动物配置
     */
    private Map<Integer, PastureAnimalConfig> animalConfigMap = new ConcurrentHashMap<>();

    /**
     * 技能配置
     */
    private Map<Integer, PastureSkillConfig> skillConfigMap = new ConcurrentHashMap<>();

    /**
     * 模板配置
     */
    private Map<Integer, PastureModuleConfig> moduleConfigMap = new ConcurrentHashMap<>();

    /**
     * 练习模式残局配置
     */
    private Map<Integer, Map<Integer, PasturePracticeConfig>> practiceConfig = new ConcurrentHashMap<>();

    /**
     * 分组规则配置
     */
    private List<ChannelFightMatchRule> matchRuleList;

    /**
     * 地区配置
     */
    private List<ChannelFightZone> fightZoneList;

    /**
     * 牧场兵符道具id
     */
    private int pastureEnergyItemId;

    /**
     * 充能号角道具id
     */
    private int pastureSkillItemId;

    /**
     * 功勋令道具id
     */
    private int pastureUpgradeItemId;

    /**
     * 兵者诡道道具id
     */
    private int pastureRestartItemId;

    /**
     * 充能号角充能数值
     */
    private int pastureSkillItemNum;

    /**
     * 充能号角单局使用次数上限
     */
    private int pastureSkillItemLimit;

    /**
     * 积分道具id，点兵积分（填写积分id标识商店限购生效，填0不生效）
     */
    private int exchangeScoreItemId;

    /**
     * 每日免费次数
     */
    private int pastureEnergy;

    /**
     * 每局游戏消耗道具数量
     */
    private int pastureEnergyCost;

    /**
     * 复活消耗
     */
    private String pastureRestartCost;

    /**
     * 复活次数，消耗道具复活次数|购买白银战令后免费复活次数
     */
    private List<Integer> pastureRestartTime;

    /**
     * 技能槽能量上限
     */
    private List<Integer> pastureSkillEnergyMax;

    /**
     * 技能槽初始能量
     */
    private List<Integer> pastureSkillEnergyStart;

    /**
     * 单回合内连消的得分加成，第1次消除加成|第2次及以上消除加成，最终得分=本次消除基础分*（1+持续回合消除加成+单回合内连消加成）
     */
    private List<Integer> pasturePointUpChain;

    /**
     * 单局得分评价，格式：档位1最高分|档位2最高分
     */
    private List<Integer> pastureAssessLevel;

    /**
     * 单局奖励，1级评价奖励|2级评价奖励
     */
    private List<String> pastureAssessReward;

    /**
     * 野牛出现回合数，第1次出现回合|第2次出现回合
     */
    private List<Integer> pastureBossRefresh;

    /**
     * 练习回合数
     */
    private int pasturePracticeRound;

    /**
     * 普通模式回合数
     */
    private int pastureNormalRound;

    /**
     * 报名期结束时间|对战开始时间
     */
    private List<Integer> areafightTime;

    /**
     * 地域对决勋章id
     */
    private int areafightMedalId;

    public ActivityInfo getActivityInfo() {
        return activityInfo;
    }

    public void setActivityInfo(ActivityInfo activityInfo) {
        this.activityInfo = activityInfo;
    }

    public Map<Integer, PastureAnimalConfig> getAnimalConfigMap() {
        return animalConfigMap;
    }

    public void setAnimalConfigMap(Map<Integer, PastureAnimalConfig> animalConfigMap) {
        this.animalConfigMap = animalConfigMap;
    }

    public Map<Integer, PastureSkillConfig> getSkillConfigMap() {
        return skillConfigMap;
    }

    public void setSkillConfigMap(Map<Integer, PastureSkillConfig> skillConfigMap) {
        this.skillConfigMap = skillConfigMap;
    }

    public Map<Integer, PastureModuleConfig> getModuleConfigMap() {
        return moduleConfigMap;
    }

    public void setModuleConfigMap(Map<Integer, PastureModuleConfig> moduleConfigMap) {
        this.moduleConfigMap = moduleConfigMap;
    }

    public Map<Integer, Map<Integer, PasturePracticeConfig>> getPracticeConfig() {
        return practiceConfig;
    }

    public void setPracticeConfig(Map<Integer, Map<Integer, PasturePracticeConfig>> practiceConfig) {
        this.practiceConfig = practiceConfig;
    }

    public int getPastureEnergyItemId() {
        return pastureEnergyItemId;
    }

    public void setPastureEnergyItemId(int pastureEnergyItemId) {
        this.pastureEnergyItemId = pastureEnergyItemId;
    }

    public int getExchangeScoreItemId() {
        return exchangeScoreItemId;
    }

    public void setExchangeScoreItemId(int exchangeScoreItemId) {
        this.exchangeScoreItemId = exchangeScoreItemId;
    }

    public int getPastureEnergy() {
        return pastureEnergy;
    }

    public void setPastureEnergy(int pastureEnergy) {
        this.pastureEnergy = pastureEnergy;
    }

    public int getPastureEnergyCost() {
        return pastureEnergyCost;
    }

    public void setPastureEnergyCost(int pastureEnergyCost) {
        this.pastureEnergyCost = pastureEnergyCost;
    }

    public List<Integer> getPastureSkillEnergyStart() {
        return pastureSkillEnergyStart;
    }

    public void setPastureSkillEnergyStart(List<Integer> pastureSkillEnergyStart) {
        this.pastureSkillEnergyStart = pastureSkillEnergyStart;
    }

    public int getPastureSkillItemId() {
        return pastureSkillItemId;
    }

    public void setPastureSkillItemId(int pastureSkillItemId) {
        this.pastureSkillItemId = pastureSkillItemId;
    }

    public int getPastureSkillItemNum() {
        return pastureSkillItemNum;
    }

    public void setPastureSkillItemNum(int pastureSkillItemNum) {
        this.pastureSkillItemNum = pastureSkillItemNum;
    }

    public int getPastureSkillItemLimit() {
        return pastureSkillItemLimit;
    }

    public void setPastureSkillItemLimit(int pastureSkillItemLimit) {
        this.pastureSkillItemLimit = pastureSkillItemLimit;
    }

    public List<Integer> getPastureSkillEnergyMax() {
        return pastureSkillEnergyMax;
    }

    public void setPastureSkillEnergyMax(List<Integer> pastureSkillEnergyMax) {
        this.pastureSkillEnergyMax = pastureSkillEnergyMax;
    }

    public List<Integer> getPasturePointUpChain() {
        return pasturePointUpChain;
    }

    public void setPasturePointUpChain(List<Integer> pasturePointUpChain) {
        this.pasturePointUpChain = pasturePointUpChain;
    }

    public int getPastureUpgradeItemId() {
        return pastureUpgradeItemId;
    }

    public void setPastureUpgradeItemId(int pastureUpgradeItemId) {
        this.pastureUpgradeItemId = pastureUpgradeItemId;
    }

    public List<Integer> getPastureAssessLevel() {
        return pastureAssessLevel;
    }

    public void setPastureAssessLevel(List<Integer> pastureAssessLevel) {
        this.pastureAssessLevel = pastureAssessLevel;
    }

    public List<String> getPastureAssessReward() {
        return pastureAssessReward;
    }

    public void setPastureAssessReward(List<String> pastureAssessReward) {
        this.pastureAssessReward = pastureAssessReward;
    }

    public List<Integer> getPastureBossRefresh() {
        return pastureBossRefresh;
    }

    public void setPastureBossRefresh(List<Integer> pastureBossRefresh) {
        this.pastureBossRefresh = pastureBossRefresh;
    }

    public String getPastureRestartCost() {
        return pastureRestartCost;
    }

    public void setPastureRestartCost(String pastureRestartCost) {
        this.pastureRestartCost = pastureRestartCost;
    }

    public List<Integer> getPastureRestartTime() {
        return pastureRestartTime;
    }

    public void setPastureRestartTime(List<Integer> pastureRestartTime) {
        this.pastureRestartTime = pastureRestartTime;
    }

    public int getPasturePracticeRound() {
        return pasturePracticeRound;
    }

    public void setPasturePracticeRound(int pasturePracticeRound) {
        this.pasturePracticeRound = pasturePracticeRound;
    }

    public int getPastureRestartItemId() {
        return pastureRestartItemId;
    }

    public void setPastureRestartItemId(int pastureRestartItemId) {
        this.pastureRestartItemId = pastureRestartItemId;
    }

    public int getPastureNormalRound() {
        return pastureNormalRound;
    }

    public void setPastureNormalRound(int pastureNormalRound) {
        this.pastureNormalRound = pastureNormalRound;
    }

    public List<Integer> getAreafightTime() {
        return areafightTime;
    }

    public void setAreafightTime(List<Integer> areafightTime) {
        this.areafightTime = areafightTime;
    }

    public int getAreafightMedalId() {
        return areafightMedalId;
    }

    public void setAreafightMedalId(int areafightMedalId) {
        this.areafightMedalId = areafightMedalId;
    }

    public List<ChannelFightMatchRule> getMatchRuleList() {
        return matchRuleList;
    }

    public void setMatchRuleList(List<ChannelFightMatchRule> matchRuleList) {
        this.matchRuleList = matchRuleList;
    }

    public List<ChannelFightZone> getFightZoneList() {
        return fightZoneList;
    }

    public void setFightZoneList(List<ChannelFightZone> fightZoneList) {
        this.fightZoneList = fightZoneList;
    }

}
